package cn.bubi.access.utils.security;

import java.security.SecureRandom;

/**
 * 随机数生成工具类；
 *
 * @author haiq
 */
public class RandomUtils{

    public static byte[] generateRandomBytes(int sizeOfRandom){
        return generateRandomBytes(sizeOfRandom, null);
    }

    /**
     * 用指定的种子生成秘钥；
     * <p>
     * <p>
     * 注：需要注意，同一个种子有可能产生不同的随机数序列；
     *
     * @param sizeOfRandom 要输出的随机数的长度；（单位：字节）
     * @param seed         随机种子；
     * @return 随机数；长度等于 sizeOfRandom 参数指定的值；
     */
    public static byte[] generateRandomBytes(int sizeOfRandom, byte[] seed){
        SecureRandom sr = null;
        if (seed == null || seed.length == 0) {
            // 随机；
            sr = new SecureRandom();
        } else {
            sr = new SecureRandom(seed);
        }
        byte[] randomBytes = new byte[sizeOfRandom];
        sr.nextBytes(randomBytes);
        return randomBytes;
    }

}
